package com.cool4j.generator.entity

import org.apache.commons.lang3.StringUtils

/**
 * 数据库表类
 *
 * @author Frank create on 16/1/7 14:29
 */
class Table {

    String tableName;

    String className;

    String remark;

    List<Column> columnList;

    /**
     * 返回类的变量名(首字母小写)
     *
     * @return - 类作为属性的变量名
     */
    String getPropertyName() {
        //return className.substring(0, 1).toLowerCase() + className.substring(1, className.length())
        /* 使用 StringUtils.uncapitalize(String) 设置首字母小写 */
        return StringUtils.uncapitalize(className);
    }

    void setTableName(tableName) {
        this.tableName = tableName

        def words = StringUtils.split(tableName.toLowerCase(), "_")

        def start = 0;
        if (tableName.startsWith("t_") || tableName.startsWith("T_")) {
            start = 1;
        }

        def sb = new StringBuffer();
        // Groovy 闭包迭代
        words.each { word ->
            sb.append(StringUtils.capitalize(word))
        }
        this.className = sb.toString()
    }

    /* 其他的 getter/setter 由 Groovy 自动生成 */

}
